from flask import Flask,jsonify,request
from flask.wrappers import Request
from  flask_cors import CORS
import datetime
from utils.jwts import  myjwt
from utils.redisconn import r

#日志模块
import logging
from logging import FileHandler


#写日志 需要用上下文方式  这边定义了app方法
def create_app():
    app = Flask(__name__)
    with app.app_context():
        pass
    return app
app = create_app()


#跨域
CORS(app)

#解决中文乱码
from conf.config import Config
app.config.from_object(Config)


#公司蓝图
from views.comany import bp_comany
app.register_blueprint(bp_comany,url_prefix='/comany')

#用户蓝图 
from views.user import bp_user
app.register_blueprint(bp_user,url_prefix='/users')



#测试 项目是否可用
@app.route("/ceshi/")
async def ceshi():
    return jsonify({"code":200,'mas':'你好 我很好 hello world hha '})


# #钩子函数限制后端接口
# @app.before_request
# def before_request():
#     #设置白名 除了登录注册 其余全部需要tokenh
#     whitelist = ['/users/login/']
#     #如果访问的接口没有在白名单里
#     print(request.path)
#     print('asdasdasdasdasdasd')
#     if request.path not in whitelist:
#         #获取token 获取到进行下一不没有就提示没权访问   应为token报错看不懂直接返回一个jsonify的语句
        
#         try:
#             token = request.headers['Authorization']
#             print(token)
#         except:
#             return jsonify({'code':400301,'mes':'无权访问'})
#         #获取用户的后台权限
#         #判断用户token是否合法
#         if myjwt.jwt_check == False:
#             return jsonify({'code':400301,'mes':'token不合法'})
        
#         #解析token  拿到id  查询用户后台权限 没有则不合法  {'data': {'mobile': '13212345678', 'userid': 1, 'name': '李思'}}
#         datapay = myjwt.jwt_decode(token)
#         userid = datapay['data']['userid']
#         #分装在set中的key  取出了列表
#         key = 'interface'+str(userid)
#         postlist = r.set_get(key)
#         print(postlist)
#         if  request.path not in postlist:
#             return jsonify({'code':400301,'mes':'无权访问'})


#测试token接口与
@app.route('/left')
def left():
    return 'asdasdasdasdas'

@app.route('/right')
def right():
    return '哈哈哈哈哈'







if __name__ == '__main__':
    filename = datetime.datetime.strftime(datetime.datetime.now(),'%Y%m')
    handler = logging.FileHandler('logs/'+filename+'.txt')
    app.logger.addHandler(handler)
    app.run(debug=True,port=5000,host='127.0.0.1')





